﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EntidadesDeNegocio
{
    public class Produccion
    {
        /// <summary>
        /// Id de producción
        /// </summary>
        public int IdProduccion { get; set; }
        /// <summary>
        /// Diseño a producir
        /// </summary>
        public Diseno DisenoProduccion { get; set; }
        /// <summary>
        /// Cantidad de ejemplares solicitados para producir
        /// </summary>
        public int CantidadSolicitada { get; set; }
        /// <summary>
        /// Cantidad producidas de este diseño
        /// </summary>
        public int CantidadProducida { get; set; }
        /// <summary>
        /// Cantidad restante que queda por producir
        /// </summary>
        public int CantidadRestante 
        {
            get { return this.CantidadSolicitada - this.CantidadProducida; }
            set { CantidadRestante = value; } 
        }
        /// <summary>
        /// Medio del diseño que existen en la producción
        /// </summary>
        public MedioComponente MedioProduccion 
        {
            get { return this.DisenoProduccion.Medio; }
        }
        /// <summary>
        /// Fecha de produccion
        /// </summary>
        public DateTime FechaProduccionAgendada { get; set; }
        /// <summary>
        /// Seteado para producir
        /// </summary>
        public bool Producir { get; set; }
        /// <summary>
        /// Constructor con parámetros
        /// </summary>
        /// <param name="diseno"></param>
        /// <param name="medio"></param>
        /// <param name="cantidadSolicitada"></param>
        /// <param name="cantidadProducida"></param>
        /// <param name="fechaProduccion"></param>
        public Produccion(int idProduccion,Diseno diseno, MedioComponente medio, int cantidadSolicitada, int cantidadProducida, DateTime fechaProduccion,bool producir)
        {
            this.IdProduccion = idProduccion;
            this.DisenoProduccion = diseno;
            this.CantidadSolicitada = cantidadSolicitada;
            this.CantidadProducida = cantidadProducida;            
            this.FechaProduccionAgendada = fechaProduccion;
            this.Producir = producir;
        }
        /// <summary>
        /// Constructor sin parámetros
        /// </summary>
        public Produccion() { }
    }
}
